<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>JSON Voorhees: jsonv::encoder Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script src="http://www.mathjax.org/mathjax/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">JSON Voorhees
   </div>
   <div id="projectbrief">Killer JSON for C++</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classjsonv_1_1encoder.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classjsonv_1_1encoder-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">jsonv::encoder Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>An encoder is responsible for writing values to some form of output.  
 <a href="classjsonv_1_1encoder.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="encode_8hpp_source.html">jsonv/encode.hpp</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for jsonv::encoder:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="classjsonv_1_1encoder.png" usemap="#jsonv::encoder_map" alt=""/>
  <map id="jsonv::encoder_map" name="jsonv::encoder_map">
<area href="classjsonv_1_1ostream__encoder.html" title="An encoder that outputs to an std::ostream. " alt="jsonv::ostream_encoder" shape="rect" coords="0,56,185,80"/>
<area href="classjsonv_1_1ostream__pretty__encoder.html" alt="jsonv::ostream_pretty_encoder" shape="rect" coords="0,112,185,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8c314dfcaa9df22f72ed16cf771a4849"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a8c314dfcaa9df22f72ed16cf771a4849">encode</a> (const <a class="el" href="classjsonv_1_1value.html">jsonv::value</a> &amp;source)</td></tr>
<tr class="memdesc:a8c314dfcaa9df22f72ed16cf771a4849"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode some source value into this encoder.  <a href="#a8c314dfcaa9df22f72ed16cf771a4849">More...</a><br/></td></tr>
<tr class="separator:a8c314dfcaa9df22f72ed16cf771a4849"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:adc4c685d9633c53ab01ecd57650372b7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#adc4c685d9633c53ab01ecd57650372b7">write_null</a> ()=0</td></tr>
<tr class="memdesc:adc4c685d9633c53ab01ecd57650372b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the null value.  <a href="#adc4c685d9633c53ab01ecd57650372b7">More...</a><br/></td></tr>
<tr class="separator:adc4c685d9633c53ab01ecd57650372b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1be23444dc5618d49eb3dc731b09189f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a1be23444dc5618d49eb3dc731b09189f">write_object_begin</a> ()=0</td></tr>
<tr class="memdesc:a1be23444dc5618d49eb3dc731b09189f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the opening of an object value.  <a href="#a1be23444dc5618d49eb3dc731b09189f">More...</a><br/></td></tr>
<tr class="separator:a1be23444dc5618d49eb3dc731b09189f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87379e446c9882bbef43ba07eaa79921"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a87379e446c9882bbef43ba07eaa79921">write_object_end</a> ()=0</td></tr>
<tr class="memdesc:a87379e446c9882bbef43ba07eaa79921"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the closing of an object value.  <a href="#a87379e446c9882bbef43ba07eaa79921">More...</a><br/></td></tr>
<tr class="separator:a87379e446c9882bbef43ba07eaa79921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace3ca4df06ca8d7db6ec87ff17d26964"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#ace3ca4df06ca8d7db6ec87ff17d26964">write_object_key</a> (string_view key)=0</td></tr>
<tr class="memdesc:ace3ca4df06ca8d7db6ec87ff17d26964"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the key for an object, including the separator.  <a href="#ace3ca4df06ca8d7db6ec87ff17d26964">More...</a><br/></td></tr>
<tr class="separator:ace3ca4df06ca8d7db6ec87ff17d26964"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec505c124a25aca218bd0f437383f701"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#aec505c124a25aca218bd0f437383f701">write_object_delimiter</a> ()=0</td></tr>
<tr class="memdesc:aec505c124a25aca218bd0f437383f701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the delimiter between two entries in an object.  <a href="#aec505c124a25aca218bd0f437383f701">More...</a><br/></td></tr>
<tr class="separator:aec505c124a25aca218bd0f437383f701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b374633ecbb5110134692c822e8f67b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a5b374633ecbb5110134692c822e8f67b">write_array_begin</a> ()=0</td></tr>
<tr class="memdesc:a5b374633ecbb5110134692c822e8f67b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the opening of an array value.  <a href="#a5b374633ecbb5110134692c822e8f67b">More...</a><br/></td></tr>
<tr class="separator:a5b374633ecbb5110134692c822e8f67b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afda594035074b4d790a16be1531802ac"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#afda594035074b4d790a16be1531802ac">write_array_end</a> ()=0</td></tr>
<tr class="memdesc:afda594035074b4d790a16be1531802ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the closing of an array value.  <a href="#afda594035074b4d790a16be1531802ac">More...</a><br/></td></tr>
<tr class="separator:afda594035074b4d790a16be1531802ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a634622f324003dcc978d91d103dd253e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a634622f324003dcc978d91d103dd253e">write_array_delimiter</a> ()=0</td></tr>
<tr class="memdesc:a634622f324003dcc978d91d103dd253e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the delimiter between two entries in an array.  <a href="#a634622f324003dcc978d91d103dd253e">More...</a><br/></td></tr>
<tr class="separator:a634622f324003dcc978d91d103dd253e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bf6951a13172eab70dceef664c27937"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a0bf6951a13172eab70dceef664c27937">write_string</a> (string_view <a class="el" href="classjsonv_1_1value.html">value</a>)=0</td></tr>
<tr class="memdesc:a0bf6951a13172eab70dceef664c27937"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a string value.  <a href="#a0bf6951a13172eab70dceef664c27937">More...</a><br/></td></tr>
<tr class="separator:a0bf6951a13172eab70dceef664c27937"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad161a2185b4afd5b140fffa1b1750bae"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#ad161a2185b4afd5b140fffa1b1750bae">write_integer</a> (std::int64_t <a class="el" href="classjsonv_1_1value.html">value</a>)=0</td></tr>
<tr class="memdesc:ad161a2185b4afd5b140fffa1b1750bae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write an integer value.  <a href="#ad161a2185b4afd5b140fffa1b1750bae">More...</a><br/></td></tr>
<tr class="separator:ad161a2185b4afd5b140fffa1b1750bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fd4323f1d9a1437af2ca167d1beae49"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#a3fd4323f1d9a1437af2ca167d1beae49">write_decimal</a> (double <a class="el" href="classjsonv_1_1value.html">value</a>)=0</td></tr>
<tr class="memdesc:a3fd4323f1d9a1437af2ca167d1beae49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a decimal value.  <a href="#a3fd4323f1d9a1437af2ca167d1beae49">More...</a><br/></td></tr>
<tr class="separator:a3fd4323f1d9a1437af2ca167d1beae49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1f63e294b42cac44a4ebc93dfddd1d3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classjsonv_1_1encoder.html#af1f63e294b42cac44a4ebc93dfddd1d3">write_boolean</a> (bool <a class="el" href="classjsonv_1_1value.html">value</a>)=0</td></tr>
<tr class="memdesc:af1f63e294b42cac44a4ebc93dfddd1d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a boolean value.  <a href="#af1f63e294b42cac44a4ebc93dfddd1d3">More...</a><br/></td></tr>
<tr class="separator:af1f63e294b42cac44a4ebc93dfddd1d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An encoder is responsible for writing values to some form of output. </p>

<p>Definition at line <a class="el" href="encode_8hpp_source.html#l00025">25</a> of file <a class="el" href="encode_8hpp_source.html">encode.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8c314dfcaa9df22f72ed16cf771a4849"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void jsonv::encoder::encode </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classjsonv_1_1value.html">jsonv::value</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Encode some source value into this encoder. </p>
<p>This is the only useful entry point to this class. </p>

</div>
</div>
<a class="anchor" id="a5b374633ecbb5110134692c822e8f67b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_array_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the opening of an array value. </p>
<div class="fragment"><div class="line">[</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#ae683f58640398a3a302b569fd82fa9b3">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#aef38996daa862aa9c828118673c0de52">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a634622f324003dcc978d91d103dd253e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_array_delimiter </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the delimiter between two entries in an array. </p>
<div class="fragment"><div class="line">,</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a6b1c561f03c7fe8c311a481720203306">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a368086c057bf13478c9ad8d158a5bc75">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="afda594035074b4d790a16be1531802ac"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_array_end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the closing of an array value. </p>
<div class="fragment"><div class="line">]</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a448c4f728a09d9a9861ee040cb9ed584">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a86cbb20c2cdbabbfeab236ed9ee7a0b3">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="af1f63e294b42cac44a4ebc93dfddd1d3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_boolean </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write a boolean value. </p>
<div class="fragment"><div class="line"><span class="keyword">true</span></div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a2544c3d6f65c1566fecc9a771dd65cb0">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#acfb4bd76b8387094e0e9f382a282e4c9">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a3fd4323f1d9a1437af2ca167d1beae49"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_decimal </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write a decimal value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>is the decimal to write. Keep in mind that standard JSON does not support special IEEE 754 values such as NaN and infinity. It is the implementation's choice of how to deal with such values. Two common options are to output <code>null</code> or to encode a string description of the special value.</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line">4.9</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#abb924c5f1332eede93205ac572af7275">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a11294e15dcdb9694e399a52f62acd52e">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="ad161a2185b4afd5b140fffa1b1750bae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_integer </td>
          <td>(</td>
          <td class="paramtype">std::int64_t&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write an integer value. </p>
<div class="fragment"><div class="line">902</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#ab7617fde174f829061516c3177830fdc">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a9b2d1ef20b2479c3b10bcc3e1d96683f">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="adc4c685d9633c53ab01ecd57650372b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_null </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the null value. </p>
<div class="fragment"><div class="line"><a class="code" href="group__Value.html#gadfc02eaef2e93e367cb9f2922cdfe490">null</a></div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a1f8de6c01aca94d5158fdc4dcf3e64f4">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a00011e0ece766612895bbe2308c309ef">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a1be23444dc5618d49eb3dc731b09189f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_object_begin </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the opening of an object value. </p>
<div class="fragment"><div class="line">{</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a31e35cb5b832e30281d84de9b13a950e">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#ae4fe933ef1fc399fb6609c0c3eeee965">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="aec505c124a25aca218bd0f437383f701"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_object_delimiter </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the delimiter between two entries in an object. </p>
<div class="fragment"><div class="line">,</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a7afa27eea2b3bbe37ca30bf15c5a8fb9">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a8225c69ef08c78e6fa3904cd2690d418">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a87379e446c9882bbef43ba07eaa79921"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_object_end </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the closing of an object value. </p>
<div class="fragment"><div class="line">}</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a854bb2c1b3460577b4ff51414ce2d23b">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#ac63cf8990ea6027ac05ccfe2b593bd40">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="ace3ca4df06ca8d7db6ec87ff17d26964"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_object_key </td>
          <td>(</td>
          <td class="paramtype">string_view&#160;</td>
          <td class="paramname"><em>key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write the key for an object, including the separator. </p>
<div class="fragment"><div class="line"><span class="stringliteral">&quot;key&quot;</span>:</div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#a3cea9227a05d549f9c72452c153bc9bf">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#a6ff540fdc4296437462aca3eb36f1baa">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<a class="anchor" id="a0bf6951a13172eab70dceef664c27937"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void jsonv::encoder::write_string </td>
          <td>(</td>
          <td class="paramtype">string_view&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Write a string value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>is the string to write. It will <em>hopefully</em> be encoded as valid UTF-8. It is the implementation's choice of how to deal with malformed string values. Two common options are to replace malformed sequences with ?s or to simply output these encodings and let the receiver deal with them.</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="stringliteral">&quot;value&quot;</span></div>
</div><!-- fragment --> 
<p>Implemented in <a class="el" href="classjsonv_1_1ostream__pretty__encoder.html#ab97601528b1dfff7abb784a52c9691ff">jsonv::ostream_pretty_encoder</a>, and <a class="el" href="classjsonv_1_1ostream__encoder.html#acfe6796877d22dcaea60d9ab7c3e58d5">jsonv::ostream_encoder</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>jsonv/<a class="el" href="encode_8hpp_source.html">encode.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>jsonv</b></li><li class="navelem"><a class="el" href="classjsonv_1_1encoder.html">encoder</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>
